package com.sinog.front.feign.basic;

import com.sinog.core.domain.Department;
import com.sinog.core.utilbean.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;

/**
 * @desc 系统管理 - 部门管理 - 部门管理 - DepartmentService
 * @author -
 * @date -
 */
@FeignClient("sinog2c-basic")
public interface DepartmentService {

    /**
     * 系统管理 - 部门管理 - 部门管理 - 保存部门信息
     * @param department department
     * @return Result
     */
    @PostMapping("/basic/department")
    Result save(@RequestParam("department") String department);

    /**
     * 系统管理 - 部门管理 - 部门管理 - 批量删除部门
     * @param ids ids
     * @param id id
     * @return Result
     */
    @DeleteMapping("/basic/department")
    Result deleteBatch(@RequestParam String[] ids,@RequestParam String id);

    /**
     * 系统管理 - 部门管理 - 部门管理 - 获取点击节点的部门信息
     * @param id id
     * @param pid pid
     * @param type 查询类型、1:(loadTree),2:(loadTreeNoParent),3:(getDepartInfo)
     * @return Result
     */
    @RequestMapping("/basic/departments/getDepartInfo")
    Result getDepartInfo(@RequestParam("id") String id,@RequestParam("pid") String pid,@RequestParam("type") String type);

    /**
     * 系统管理 - 部门管理 - 部门管理 - 获取下级机构类型下拉
     * @param deptId deptId
     * @return String
     */
    @RequestMapping("/basic/department/getLevelCombox")
    String getLevelCombox(@RequestParam("deptId") String deptId);

    /**
     * 获取本省下所有监狱
     * @param id id
     * @return List<Department>
     */
    @GetMapping("/azbj/inmates_bl/baseinfo/getAllPrison")
    List<Department> getAllPrison(@RequestParam("id") String id);

    /**
     * 预安置管理 - 全部人员管理-入监单位
     * @param departId departId
     * @return List<Map<String,String>>
     */
    @RequestMapping("/basic/department/getrjdanwei")
    List<Map<String,String>> getrjdanwei(@RequestParam("departId") String departId);

    /**
     * 根据ID查询部门信息
     * @param id id
     * @return Department
     */
    @RequestMapping("/basic/department/selectByDeptId")
    Department selectByDeptId(@RequestParam("id") String id);
}